#ifndef IINPUT_INTERFACE
#define IINPUT_INTERFACE

extern "C"
#ifdef INPUT_EXPORTS
#define INPUT_INTERFACE _declspec (dllexport)
#else
#define INPUT_INTERFACE _declspec (dllimport)
#endif

class INPUT_INTERFACE IInput
{
public:
	virtual ~IInput(){};

	virtual	bool	Initialize(void* hInstance) = 0;
	virtual bool	Finalize() = 0;

	virtual bool	IsKeyDown(int iKeyFlag) = 0;
	virtual bool	IsKeyUp(int iKeyFlag) = 0;

	virtual	bool	MouseMove(int& iX,int& iY) = 0;
	virtual bool	MouseLButtonDown() = 0;
	virtual bool	MouseLButtonUp() = 0;
	virtual bool	MouseLButtonDClick() = 0;
	virtual bool	MouseRButtonDown() = 0;
	virtual bool	MouseRButtonUp() = 0;
	virtual bool	MouseRButtonDClick() = 0;
};

extern INPUT_INTERFACE IInput* g_pkInput;

extern INPUT_INTERFACE bool IntializeInput();
extern INPUT_INTERFACE bool FinalizeInput();
#endif